﻿/***************************************************************
 * 开发人员：网魂小兵@http://www.mozlite.com
 * 
 * 目标标本：4.0.30319.239
 * 
 * 最后修改：2011/12/19 18:15:56
 * ************************************************************/
namespace Mozlite.Common
{
    using System;
    using System.Linq;
    using System.Text;
    using System.Data;
    using System.Data.Common;
    using System.Collections.Generic;
    using Mozlite.Data;

    /// <summary>
    /// 数据库提供者。
    /// </summary>
    public abstract class MediaDataProvider : ProviderBase<MediaDataProvider>
    {
        /// <summary>
        /// 初始化类<see cref="T:Mozlite.Common.MediaDataProvider"/>。
        /// </summary>
        /// <param name="factory">数据库提供者工厂类。</param>
        protected MediaDataProvider(DbProviderFactory factory) : base(factory) { }

        /// <summary>
        /// 保存分类。
        /// </summary>
        /// <param name="category">分类实例。</param>
        /// <returns>返回执行结果。</returns>
        public abstract bool SaveCategory(MediaCategory category);
        /// <summary>
        /// 删除分类。
        /// </summary>
        /// <param name="categoryIDs">分类ID集合，以“,”分割。</param>
        /// <returns>返回删除结果。</returns>
        public abstract bool DeleteCategories(string categoryIDs);
        /// <summary>
        /// 获取分类实例。
        /// </summary>
        /// <param name="categoryID">分类ID。</param>
        /// <returns>返回分类实例对象。</returns>
        public abstract MediaCategory GetCategory(int categoryID);
        /// <summary>
        /// 加载分类列表。
        /// </summary>
        /// <returns>返回分类列表。</returns>
        public abstract Dictionary<int, MediaCategory> LoadCategories();

        /// <summary>
        /// 保存地区。
        /// </summary>
        /// <param name="region">地区实例对象。</param>
        /// <returns>返回执行结果。</returns>
        public abstract bool SaveRegion(MediaRegion region);
        /// <summary>
        /// 删除地区。
        /// </summary>
        /// <param name="regionIDs">地区ID，以“,”分割。</param>
        /// <returns>返回执行结果。</returns>
        public abstract bool DeleteRegions(string regionIDs);
        /// <summary>
        /// 获取地区实例
        /// </summary>
        /// <param name="regionID">地区ID。</param>
        /// <returns>返回地区实例对象。</returns>
        public abstract MediaRegion GetRegion(int regionID);
        /// <summary>
        /// 加载地区列表。
        /// </summary>
        /// <returns>返回地区列表。</returns>
        public abstract Dictionary<int, MediaRegion> LoadRegions();
    }
}